home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 12
/
Aminet 12 (1996)(GTI - Schatztruhe)[!][Jun 1996].iso
/
Aminet
/
biz
/
dbase
/
Archie1_2.lha
/
Archie-Distribution
/
Archie
/
Archie.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1996-03-11
|
24KB
|
892 lines
/*
** The famous ARCHIE Archiver (c) 1996 by Peter D. Habermehl
** $VER: Archie V1.2 11.03.96
*/
/*
** Init
*/
pathum = PRAGMA("D")
say pathum
LoadLibrary('rexxsupport.library',)
LoadLibrary('rexxreqtools.library')
OPTIONS RESULTS
datei = "Archivdatei"
entries = 0
info = "Infostring"
rubriken = 0
load = FALSE
save = TRUE
OpenVarexx=LoadVarexx()
ADDRESS VAREXX
result = OpenPort("MYPORT")
ADDRESS VALUE OpenGUI("ArchieMain.GUI")
SetMainGUI()
/*
** Main Loop
*/
DO FOREVER
CALL WaitPKT('MYPORT')
pkt=GetPKT('MYPORT')
IF pkt ~= '00000000'x THEN DO
class=SUBWORD(GetArg(pkt),1,1)
SELECT
WHEN class = CloseWindow THEN LEAVE
WHEN class = 'QUIT' THEN LEAVE
WHEN class = 'WAHL' THEN Archiv()
WHEN class = 'INFO' THEN DO
info = SUBWORD(GetArg(pkt),2)
save = FALSE
END
WHEN class = 'EINGEBEN' THEN Eingeben()
WHEN class = 'EDITIEREN' THEN Editieren()
WHEN class = 'SUCHEN' THEN Suchen()
WHEN class = 'SPEICHERN' THEN Speichern()
OTHERWISE
END
SetMainGui()
END
END
IF save = FALSE THEN askforsave()
'hide unload'
CALL ClosePort("MYPORT")
/*
** Showdown
*/
IF OpenVarexx=1 THEN CloseVarexx
EXIT
/*
** Subprograms
*/
Archiv:
IF save = FALSE THEN askforsave()
new_file = rtfilerequest(,,"Lade Archiv","Laden","rtfi_flags=freqf_patgad rtfi_matchpat=#?.archie",nil)
IF new_file ~="" THEN DO
IF EXISTS(new_file) THEN DO
IF Open(file,new_file,"READ") THEN DO
test=READLN(file)
IF test="ARCHIE-ARCHIVDATEI" THEN DO
datei=new_file
info=READLN(file)
r="rubriken="||READLN(file)
INTERPRET r
DO i=1 TO rubriken
Rubrik.i=READLN(file)
END
r="entries="||READLN(file)
INTERPRET r
DO i=1 TO entries
ausgabe.i=READLN(file)
jahr.i=READLN(file)
seite.i=READLN(file)
rubrick.i=READLN(file)
eintrag.i=READLN(file)
END
END
else DO
bodytext = "Dies ist keine Archivdatei!"
tagstring = "rt_reqpos=reqpos.centerwin"
dummy = rtezrequest(bodytext,"Okay","Fehler:",,tagstring)
END
CALL Close(file)
END
save=TRUE
load=TRUE
END
else NeuAnlegen()
END
RETURN 0
Eingeben:
'hide unload'
ADDRESS VAREXX
ADDRESS VALUE OpenGUI("ArchieEingabe.gui")
Ausgabe = ""
Jahr = ""
Seite = ""
Rubrick = rubrik.1
Eintrag = ""
entries=entries+1
SetText "AUSGABE" Ausgabe
SetText "JAHR" Jahr
SetText "EINTRAGNUMMER" entries
SetText "SEITE" Seite
SetText "RUBRIK" Rubrick
SetText "EINTRAG" Eintrag
rubrik.select = 1
rubrik.count=rubriken
SetList "RUBRIKEN" CLEAR STEM rubrik
DO FOREVER
CALL WaitPKT('MYPORT')
pkt=GetPKT('MYPORT')
IF pkt ~= '00000000'x THEN DO
class=SUBWORD(GetArg(pkt),1,1)
SELECT
WHEN class = CloseWindow THEN LEAVE
WHEN class = "EINGABEENDE" THEN LEAVE
WHEN class = "AUSGABE" THEN Ausgabe = SUBWORD(GetArg(pkt),2)
WHEN class = "JAHR" THEN Jahr = SUBWORD(GetArg(pkt),2)
WHEN class = "SEITE" THEN Seite = SUBWORD(GetArg(pkt),2)
WHEN class = "EINTRAG" THEN Eintrag = SUBWORD(GetArg(pkt),2)
WHEN class = "RUBRIKEN" THEN DO
Rubrick = SUBWORD(GetArg(pkt),2)
SetText "RUBRIK" Rubrick
END
WHEN class = "OKAY" THEN DO
ausgabe.entries = Ausgabe
jahr.entries = Jahr
seite.entries = Seite
rubrick.entries = Rubrick
eintrag.entries = Eintrag
entries=entries+1
Seite = ""
Eintrag = ""
SetText "SEITE" Seite
SetText "EINTRAG" Eintrag
SetText "EINTRAGNUMMER" entries
save = FALSE
END
OTHERWISE
END
END
END
entries=entries-1
'hide unload'
ADDRESS VAREXX
ADDRESS VALUE OpenGUI("ArchieMain.gui")
RETURN 0
Editieren:
'hide unload'
ADDRESS VAREXX
ADDRESS VALUE OpenGUI("ArchieEditieren.gui")
current=entries
Ausgabe = ausgabe.current
Jahr = jahr.current
Seite = seite.current
Rubrick = Rubrick.current
Eintrag = Eintrag.current
SetText "AUSGABE" Ausgabe
SetText "JAHR" Jahr
SetText "SEITE" Seite
SetText "RUBRIK" Rubrick
SetText "EINTRAG" Eintrag
SetText "EINTRAGNUMMER" current
SetText "STATUS" "gesichert"
DO i=1 TO rubriken
IF rubrik.i=Rubrick THEN rubrik.select = i
END
rubrik.count=rubriken
SetList "RUBRIKEN" CLEAR STEM rubrik
one=1
SetBar "SLIDER" VISIBLE 1 TOTAL entries
SetNum "SLIDER" current
csave = TRUE
DO FOREVER
CALL WaitPKT('MYPORT')
pkt=GetPKT('MYPORT')
IF pkt ~= '00000000'x THEN DO
class=SUBWORD(GetArg(pkt),1,1)
SELECT
WHEN class = CloseWindow THEN LEAVE
WHEN class = "ENDE" THEN LEAVE
WHEN class = "AUSGABE" THEN DO
Ausgabe = SUBWORD(GetArg(pkt),2)
csave=FALSE
END
WHEN class = "JAHR" THEN DO
Jahr = SUBWORD(GetArg(pkt),2)
csave=FALSE
END
WHEN class = "SEITE" THEN DO
Seite = SUBWORD(GetArg(pkt),2)
csave=FALSE
END
WHEN class = "EINTRAG" THEN DO
Eintrag = SUBWORD(GetArg(pkt),2)
csave=FALSE
END
WHEN class = "RUBRIKEN" THEN DO
Rubrick = SUBWORD(GetArg(pkt),2)
SetText "RUBRIK" Rubrick
csave=FALSE
END
WHEN class = "SICHERN" THEN DO
ausgabe.current = Ausgabe
jahr.current = Jahr
seite.current = Seite
rubrick.current = Rubrick
eintrag.current = Eintrag
csave=TRUE
save=FALSE
END
WHEN class = "VERWERFEN" THEN DO
Ausgabe = ausgabe.current
Jahr = jahr.current
Seite = seite.current
Rubrick = Rubrick.current
Eintrag = Eintrag.current
SetText "AUSGABE" Ausgabe
SetText "JAHR" Jahr
SetText "SEITE" Seite
SetText "RUBRIK" Rubrick
SetText "EINTRAG" Eintrag
SetText "EINTRAGNUMMER" current
csave=TRUE
END
WHEN class = "EINTRAGNUMMER" THEN DO
r = "zahl="||SUBWORD(GetArg(pkt),2)
INTERPRET r
zahl=TRUNC(zahl)
if (zahl<(entries+1))&(zahl>0) THEN current=zahl
Ausgabe = ausgabe.current
Jahr = jahr.current
Seite = seite.current
Rubrick = Rubrick.current
Eintrag = Eintrag.current
SetText "AUSGABE" Ausgabe
SetText "JAHR" Jahr
SetText "SEITE" Seite
SetText "RUBRIK" Rubrick
SetText "EINTRAG" Eintrag
SetText "EINTRAGNUMMER" current
SetNum "SLIDER" current
csave=TRUE
END
WHEN class = "SLIDER" THEN DO
r = "zahl="||SUBWORD(GetArg(pkt),2)
INTERPRET r
zahl=TRUNC(zahl)
if (zahl<(entries+1))&(zahl>0) THEN current=zahl
Ausgabe = ausgabe.current
Jahr = jahr.current
Seite = seite.current
Rubrick = Rubrick.current
Eintrag = Eintrag.current
SetText "AUSGABE" Ausgabe
SetText "JAHR" Jahr
SetText "SEITE" Seite
SetText "RUBRIK" Rubrick
SetText "EINTRAG" Eintrag
SetText "EINTRAGNUMMER" current
SetNum "NUMMER" current
csave=TRUE
END
WHEN class = "MINUS" THEN DO
zahl=current-1
if (zahl<(entries+1))&(zahl>0) THEN current=zahl
Ausgabe = ausgabe.current
Jahr = jahr.current
Seite = seite.current
Rubrick = Rubrick.current
Eintrag = Eintrag.current
SetText "AUSGABE" Ausgabe
SetText "JAHR" Jahr
SetText "SEITE" Seite
SetText "RUBRIK" Rubrick
SetText "EINTRAG" Eintrag
SetText "EINTRAGNUMMER" current
SetNum "SLIDER" current
csave=TRUE
END
WHEN class = "PLUS" THEN DO
zahl=current+1
if (zahl<(entries+1))&(zahl>0) THEN current=zahl
Ausgabe = ausgabe.current
Jahr = jahr.current
Seite = seite.current
Rubrick = Rubrick.current
Eintrag = Eintrag.current
SetText "AUSGABE" Ausgabe
SetText "JAHR" Jahr
SetText "SEITE" Seite
SetText "RUBRIK" Rubrick
SetText "EINTRAG" Eintrag
SetText "EINTRAGNUMMER" current
SetNum "SLIDER" current
csave=TRUE
END
WHEN class = "KILL" THEN DO
IF entries>1 THEN DO
DO i=current to entries-1
k=i+1
Ausgabe.i = ausgabe.k
Jahr.i = jahr.k
Seite.i = seite.k
Rubrick.i = Rubrick.k
Eintrag.i = Eintrag.k
END
IF current=entries THEN current=current-1
entries=entries-1
Ausgabe = ausgabe.current
Jahr = jahr.current
Seite = seite.current
Rubrick = Rubrick.current
Eintrag = Eintrag.current
SetText "AUSGABE" Ausgabe
SetText "JAHR" Jahr
SetText "SEITE" Seite
SetText "RUBRIK" Rubrick
SetText "EINTRAG" Eintrag
SetText "EINTRAGNUMMER" current
SetBar "SLIDER" VISIBLE 1 TOTAL entries
SetNum "SLIDER" current
csave=TRUE
save=FALSE
END
END
OTHERWISE
END
IF csave=TRUE THEN SetText "STATUS" "gesichert"
else SetText "STATUS" "nicht gesichert"
END
END
'hide unload'
ADDRESS VAREXX
ADDRESS VALUE OpenGUI("ArchieMain.gui")
RETURN 0
Suchen:
'hide unload'
ADDRESS VAREXX
ADDRESS VALUE OpenGUI("ArchieSuchen.gui")
rubriken=rubriken+1
rubrik.rubriken="<alle Rubriken>"
SetText "RUBRIK" rubrik.rubriken
gefunden=0
gefpointer=0
gefstring = DecToStr(gefunden)
SetText "GEFUNDEN" gefstring
such_ausgabe="*"
such_jahr="*"
such_nummer="*"
such_seite="*"
such_rubrik=rubrik.rubriken
such_eintrag="*"
rubrik.count=rubriken
rubrik.select=such_rubrik
SetList "RUBRIKEN" CLEAR STEM rubrik
druck=0
speichern=0 /* 0=alle , 1=diesen */
vergessen=0
SetBar "GEFNUMMER" VISIBLE 1 TOTAL gefunden
SetNum "GEFNUMMER" gefpointer
DO FOREVER
CALL WaitPKT('MYPORT')
pkt=GetPKT('MYPORT')
IF pkt ~= '00000000'x THEN DO
class=SUBWORD(GetArg(pkt),1,1)
SELECT
WHEN class = CloseWindow THEN LEAVE
WHEN class = "ENDE" THEN LEAVE
WHEN class = "AUSGABE" THEN DO
such_ausgabe = SUBWORD(GetArg(pkt),2)
such_ausgabe = SuchString(such_ausgabe)
SetText "AUSGABE" such_ausgabe
END
WHEN class = "JAHR" THEN DO
such_JAHR=SUBWORD(GetArg(pkt),2)
such_JAHR=SuchString(such_jahr)
SetText "JAHR" such_jahr
END
WHEN class = "NUMMER" THEN DO
such_nummer=SUBWORD(GetArg(pkt),2)
such_nummer=SuchString(such_nummer)
SetText "NUMMER" such_nummer
END
WHEN class = "SEITE" THEN DO
such_seite=SUBWORD(GetArg(pkt),2)
such_seite=SuchString(such_seite)
SetText "SEITE" such_seite
END
WHEN class = "EINTRAG" THEN DO
such_eintrag=SUBWORD(GetArg(pkt),2)
such_eintrag=SuchString(such_eintrag)
SetText "EINTRAG" such_eintrag
END
WHEN class = "RUBRIKEN" THEN DO
such_rubrik = SUBWORD(GetArg(pkt),2)
SetText "RUBRIK" such_rubrik
END
WHEN class = "SUCHEN" THEN DO
'BUSY SET'
DO k=1 TO entries
stimmt=TRUE
s1=WildMatch(ausgabe.k,such_ausgabe)
s2=WildMatch(jahr.k,such_jahr)
s3=WildMatch(seite.k,such_seite)
s4=WildMatch(eintrag.k,such_eintrag)
IF such_rubrik = "<alle Rubriken>" THEN s5=TRUE
else DO
s5=FALSE
IF such_rubrik = rubrick.k THEN s5=TRUE
END
if (s1=TRUE)&(s2=TRUE)&(s3=TRUE)&(s4=TRUE)&(s5=TRUE) THEN DO
gefunden=gefunden+1
match_entry.gefunden=k
END
END
gefpointer=1
SetText "GEFUNDEN" DecToStr(gefunden)
SetBar "GEFNUMMER" VISIBLE 1 TOTAL gefunden
SetNum "GEFNUMMER" gefpointer
showfound()
BUSY
END
WHEN class = "GEFMINUS" THEN DO
gefpointer = max(gefpointer-1,1)
showfound()
END
WHEN class = "GEFPLUS" THEN DO
gefpointer = min(gefpointer+1,gefunden)
showfound()
END
WHEN class = "DRUCKEN" THEN DO
BUSY SET
IF druck=0 THEN DO
IF Open(cfile,"t:Archie.print","WRITE") THEN DO
DO k=1 TO gefunden
l=match_entry.k
text="Ausgabe : "||Ausgabe.l||" Jahr: "||jahr.l
CALL WriteLn(cfile,text)
text="Seite : "||Seite.l||" Rubrik: "||Rubrick.l
CALL WriteLn(cfile,text)
CALL WriteLn(cfile,Eintrag.l)
CALL WriteLn(cfile,"__")
END
CALL Close(cfile)
ADDRESS COMMAND "COPY >NIL: T:ARCHIE.PRINT PRT:"
ADDRESS COMMAND "DELETE >NIL: T:ARCHIE.PRINT"
END
END
else DO
l=match_entry.gefpointer
IF Open(cfile,"t:Archie.print","WRITE") THEN DO
text="Ausgabe : "||Ausgabe.l||" Jahr: "||jahr.l
CALL WriteLn(cfile,text)
text="Seite : "||Seite.l||" Rubrik: "||Rubrick.l
CALL WriteLn(cfile,text)
CALL WriteLn(cfile,Eintrag.l)
CALL WriteLn(cfile," ")
CALL Close(cfile)
ADDRESS COMMAND "COPY >NIL: T:ARCHIE.PRINT PRT:"
ADDRESS COMMAND "DELETE >NIL: T:ARCHIE.PRINT"
END
END
BUSY
END
WHEN class = "GEFNUMMER" THEN DO
READ "GEFNUMMER"
gefpointer = RESULT
SetBar "GEFNUMMER" VISIBLE 1 TOTAL gefunden
SetNum "GEFNUMMER" gefpointer
ShowFound()
END
WHEN class = "SPEICHERN" THEN DO
s_file = rtfilerequest(,,"Gefundene Speichern","Speichern","rtfi_flags=freqf_patgad rtfi_matchpat=#?",nil)
if s_file~="" THEN DO
dummy=OPEN(cfile,s_file,"WRITE")
if dummy THEN DO
IF speichern=0 THEN DO
DO k=1 TO gefunden
l=match_entry.k
text="Ausgabe : "||Ausgabe.l||" Jahr: "||jahr.l
CALL WriteLn(cfile,text)
text="Seite : "||Seite.l||" Rubrik: "||Rubrick.l
CALL WriteLn(cfile,text)
CALL WriteLn(cfile,Eintrag.l)
CALL WriteLn(cfile,"__")
END
END
else DO
l=match_entry.gefpointer
text="Ausgabe : "||Ausgabe.l||" Jahr: "||jahr.l
CALL WriteLn(cfile,text)
text="Seite : "||Seite.l||" Rubrik: "||Rubrick.l
CALL WriteLn(cfile,text)
CALL WriteLn(cfile,Eintrag.l)
CALL WriteLn(cfile," ")
END
END
dummy=CLOSE(cfile)
END
END
WHEN class = "AKTUELL" THEN DO
gefpointer = MAX(1,MIN(StrToDec(SUBWORD(GetArg(pkt),2)),gefunden))
showfound()
END
WHEN class = "VERGESSEN" THEN DO
IF vergessen=0 THEN gefunden=0
else DO
DO k = gefpointer+1 TO gefunden
l = k-1
match_entry.l = match_entry.k
END
gefunden = gefunden - 1
gefpointer = min(gefpointer,gefunden)
END
showfound()
END
WHEN class = "DRUCKENCYCLE" THEN druck=StrToDec(SUBWORD(GetArg(pkt),2))
WHEN class = "SPEICHERNCYCLE" THEN speichern=StrToDec(SUBWORD(GetArg(pkt),2))
WHEN class = "VERGESSENCYCLE" THEN vergessen=StrToDec(SUBWORD(GetArg(pkt),2))
OTHERWISE
END /*Select*/
END /*IF*/
END /*DO*/
rubriken=rubriken-1
'hide unload'
ADDRESS VAREXX
ADDRESS VALUE OpenGUI("ArchieMain.gui")
RETURN 0
showfound:
if gefunden>0 THEN DO
gef=match_entry.gefpointer
SetText "GEFAUSGABE" ausgabe.gef
SetText "GEFJAHR" jahr.gef
SetText "GEFSEITE" seite.gef
SetText "GEFRUBRIK" rubrick.gef
SetText "GEFEINTRAG" eintrag.gef
SetText "GEFEINTRAGNUMMER" DecToStr(gef)
SetBar "GEFNUMMER" VISIBLE 1 TOTAL gefunden
SetNum "GEFNUMMER" gefpointer
END
else DO
SetText "GEFAUSGABE" ""
SetText "GEFJAHR" ""
SetText "GEFSEITE" ""
SetText "GEFRUBRIK" ""
SetText "GEFEINTRAG" ""
SetText "GEFEINTRAGNUMMER" ""
SetBar "GEFNUMMER" VISIBLE 1 TOTAL gefunden
SetNum "GEFNUMMER" gefpointer
END
SetText "GEFUNDEN" DecToStr(gefunden)
SetText "AKTUELL" DecToStr(gefpointer)
RETURN 0
Speichern:
IF EXISTS(datei) THEN DO
IF EXISTS(datei||".BAK") THEN ADDRESS COMMAND "DELETE "||datei||".BAK"
ADDRESS COMMAND "RENAME "||datei||" "||datei||".BAK"
END
IF Open(file,datei,"WRITE") THEN DO
CALL WRITELN(file,"ARCHIE-ARCHIVDATEI")
CALL WRITELN(file,info)
CALL WRITELN(file,rubriken)
DO i=1 TO rubriken
CALL WRITELN(file,rubrik.i)
END
CALL WRITELN(file,entries)
DO i=1 TO entries
CALL WRITELN(file,ausgabe.i)
CALL WRITELN(file,jahr.i)
CALL WRITELN(file,seite.i)
CALL WRITELN(file,rubrick.i)
CALL WRITELN(file,eintrag.i)
END
CALL Close(file)
END
save=TRUE
RETURN 0
/*
** PROCEDURES
*/
NeuAnlegen:
bodytext = "Wollen Sie ein neues Archiv anlegen?"
tagstring = "rt_reqpos=reqpos.centerwin"
dummy = rtezrequest(bodytext,"Ja|Nein","Frage:",,tagstring)
IF dummy = 1 THEN DO
IF UPPER(RIGHT(new_file,7)) ~= ".ARCHIE" THEN DO
new_file = new_file||".archie"
END
datei = new_file
info = ""
entries = 0
rubriken = 0
rubrik.0 = ""
load = TRUE
save = FALSE
neu=FALSE
current=0
'hide unload'
ADDRESS VAREXX
ADDRESS VALUE OpenGUI("ArchieRubriken.gui")
SET "EINGABE" DISABLE
DO FOREVER
CALL WaitPKT('MYPORT')
pkt=GetPKT('MYPORT')
IF pkt ~= '00000000'x THEN DO
class=SUBWORD(GetArg(pkt),1,1)
if ((class=CloseWindow)|class="OKAY") THEN DO
if (rubriken>0) THEN
LEAVE
else DO
bodytext = "Es muß mindestens EINE Rubrik existieren!"
tagstring = "rt_reqpos=reqpos.centerwin"
dummy = rtezrequest(bodytext,"Okay","Info:",,tagstring)
END
END
SELECT
WHEN class = "NEU" THEN DO
if neu=FALSE THEN DO
rubriken = rubriken + 1
rubrik.rubriken = "< neu >"
rubrik.count = rubriken
rubrik.select = rubriken
current=rubriken
SetList "RUBRIKEN" CLEAR STEM rubrik
SetText "EINGABE" rubrik.rubriken
Set "EINGABE" Enable
neu=TRUE
END
END
WHEN class = "RUBRIKEN" THEN DO
SetList "RUBRIKEN" SELECT=SUBWORD(GetArg(pkt),2)
SetText "EINGABE" SUBWORD(GetArg(pkt),2)
READ "RUBRIKEN" rubrik
current=rubrik.select
END
WHEN class = "EINGABE" THEN DO
rubrik.current = SUBWORD(GetArg(pkt),2)
rubrik.count = rubriken
rubrik.select = rubriken
SetList "RUBRIKEN" CLEAR STEM rubrik
IF rubrik.current~="< neu >" THEN neu=FALSE
END
WHEN class = "DEL" THEN DO
IF rubriken>0 THEN DO
DO i=current TO rubriken
j=i+1
rubrik.i = rubrik.j
END
rubriken=rubriken-1
current=MAX(current-1,1)
rubrik.select = current
rubrik.count = rubriken
SetList "RUBRIKEN" CLEAR STEM rubrik
SetText "Eingabe" rubrik.current
END
IF rubriken=0 THEN SET "EINGABE" DISABLE
END
WHEN class = "HOCH" THEN DO
IF Current>1 THEN DO
Current=Current-1
merk=rubrik.current
j=current+1
rubrik.current=rubrik.j
rubrik.j=merk
END
rubrik.select = current
rubrik.count = rubriken
SetList "RUBRIKEN" CLEAR STEM rubrik
SetText "Eingabe" rubrik.current
END
WHEN class = "RUNTER" THEN DO
IF Current<rubriken THEN DO
Current=Current+1
merk=rubrik.current
j=current-1
rubrik.current=rubrik.j
rubrik.j=merk
END
rubrik.select = current
rubrik.count = rubriken
SetList "RUBRIKEN" CLEAR STEM rubrik
SetText "Eingabe" rubrik.current
END
OTHERWISE
END
END
END
'hide unload'
ADDRESS VAREXX
ADDRESS VALUE OpenGUI("ArchieMain.gui")
END
RETURN 0
askforsave:
bodytext = "Das Archiv wurde noch nicht gespeichert!"
tagstring = "rt_reqpos=reqpos.centerwin"
IF rtezrequest(bodytext,"Speichern|Weiter","Warnung:",,tagstring) = 1 THEN Speichern()
RETURN 0
OpenGUI:
ARG gui
guifile=pathum||'/GUI/'||gui
'load ' guifile 'MYPORT'
GUIAdr=RESULT
ADDRESS VALUE GUIAdr
show
RETURN GUIAdr
LoadVarexx:
if show( 'p', 'VAREXX' ) ~= 1 then do
address command 'run ' || pathum || '/varexx/varexx'
waitforport VAREXX
launchvarexx = TRUE
end
RETURN launchvarexx
CloseVarexx:
address command pathum || "/varexx/vxc"
RETURN 0
LoadLibrary:
PARSE ARG library
IF EXISTS("libs:"||library) THEN DO
IF ~SHOW("L",library) THEN
IF ~ADDLIB(library,0,-30,0) THEN DO
SAY "Error while opening "library
EXIT
END
END
else DO
IF EXISTS(pathum||"/libs/"||library) THEN DO
IF ~SHOW("L",library) THEN
IF ~ADDLIB(pathum||"/libs/"||library,0,-30,0) THEN DO
SAY "Error while opening "library
EXIT
END
END
else DO
SAY "Error: No "library
EXIT
END
END
RETURN 0
GetPath: PROCEDURE
PARSE ARG filename
DROP a b
a=LASTPOS("/",filename)
b=LASTPOS(":",filename)
IF a>0 THEN RETURN LEFT(filename,a)
ELSE IF b>0 THEN RETURN LEFT(filename,b)
RETURN ""
GetFile: PROCEDURE
PARSE ARG filename
DROP a b c
a=LASTPOS("/",filename)
b=LASTPOS(":",filename)
c=LENGTH(filename)
IF a>0 THEN RETURN RIGHT(filename,c-a)
ELSE IF b>0 THEN RETURN RIGHT(filename,c-b)
RETURN filename
SetMainGUI:
IF load = FALSE THEN DO
SET Info DISABLE
SET Eingeben DISABLE
SET Editieren DISABLE
SET Suchen DISABLE
SET Speichern DISABLE
SETTEXT Info ""
END
else DO
SET Info ENABLE
SET Eingeben ENABLE
IF entries > 0 THEN DO
SET Editieren ENABLE
SET Suchen ENABLE
END
else DO
SET Editieren DISABLE
SET Suchen DISABLE
END
SET Speichern ENABLE
SETTEXT "ARCHIV" datei
SETTEXT "INFO" info
END
if (save = FALSE)&(load = TRUE) THEN SetText "STATUS" "ACHTUNG: Archiv nicht gespeichert!"
if (save = TRUE)&(load = TRUE) THEN SetText "STATUS" "Archiv gespeichert!"
if load = FALSE THEN SetText "STATUS" "Kein Archiv geladen!"
RETURN 0
StrToDec: PROCEDURE
ARG string
zahl=0
IF DATATYPE(string)="NUM" THEN zahl=String
RETURN zahl
DecToStr: PROCEDURE
ARG zahl
string=""
IF DATATYPE(zahl)="NUM" THEN String=zahl
RETURN String
SuchString: PROCEDURE
ARG string
DO UNTIL POS("**",string) = 0
IF POS("**",string) ~= 0 THEN string=DelStr(string,POS("**",string),1)
END
IF string="" THEN string="*"
RETURN string
WildMatch: PROCEDURE
ARG string,pattern
if (pattern="*")|( pattern="") THEN
match = TRUE
else DO
match=FALSE
IF POS(pattern,string)~=0 THEN match = TRUE
END
RETURN match